package com.ctd.springframework.core;

/**
 * AttributeAccessor
 *
 * @author chentudong
 * @time 2019/3/25 1:17
 */
public interface AttributeAccessor {
    /**
     * setAttribute
     *
     * @param name  name
     * @param value value
     */
    void setAttribute(String name, Object value);

    /**
     * getAttribute
     *
     * @param name name
     * @return Object
     */
    Object getAttribute(String name);

    /**
     * removeAttribute
     *
     * @param name name
     * @return Object
     */
    Object removeAttribute(String name);

    /**
     * hasAttribute
     *
     * @param name name
     * @return boolean
     */
    boolean hasAttribute(String name);

    /**
     * Return the names of all attributes.
     */
    String[] attributeNames();
}
